x86, passthrough: Enhance guest's interrupt affinity setting.
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 28 Dec 2009 09:39:23 +0000 (09:39 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 28 Dec 2009 09:39:23 +0000 (09:39 +0000)
When guest uses logical flat destionation mode for interrupt delivery,
vector doesn't change but destionation also can change, so should
enhance the check condition.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
xen/drivers/passthrough/io.c

index ce9f0884f29818ab48884b98a930115ffa9b1dea..0954ef4658af6b42d604be6d40d1eec037b61a91 100644 (file)
@@ -199,7 +199,8 @@ int pt_irq_create_bind_vtd(
             }
  
             /* if pirq is already mapped as vmsi, update the guest data/addr */
-            if ( hvm_irq_dpci->mirq[pirq].gmsi.gvec != pt_irq_bind->u.msi.gvec ) {
+            if ( hvm_irq_dpci->mirq[pirq].gmsi.gvec != pt_irq_bind->u.msi.gvec ||
+                hvm_irq_dpci->mirq[pirq].gmsi.gflags != pt_irq_bind->u.msi.gflags) {
                 hvm_irq_dpci->mirq[pirq].gmsi.old_gvec =
                                     hvm_irq_dpci->mirq[pirq].gmsi.gvec;
                 hvm_irq_dpci->mirq[pirq].gmsi.old_gflags =